#ifndef ITEM_POINT_H
#define ITEM_POINT_H

#include "Item.h"
#include "Metadata.h"

class Item_Point : public Item {
public:
    Item_Point();
    virtual ~Item_Point ();

    void parse(Parser& parser,
               const Metadata& fInfo,
               std::string& name);
    std::ostream& print(std::ostream& os) const;

    bool operator==(const Metric_Object *other) const;
    double metric(const Metric_Object *other) const;

    int get_dimension();
    double operator[](const int i) const;
    double& operator[](const int i);

private:
    int nCoords;
    double *coords;
};

std::ostream& operator<<( std::ostream& os,
                          const Item_Point& p );
#endif
